package it.probabili.formazioni.elabora;

import it.probabili.formazioni.vo.Squadra;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class ElaboraFormazioniXml {

	@Deprecated
	public static NodeList estraiCalciatori (Node nodo){
		NodeList calciatori = null;
		if(nodo!=null){
			calciatori = nodo.getChildNodes();
			System.out.println(" === LISTA: " + nodo.getNodeName().toUpperCase() + " === ");
		}

		return calciatori;
	}
	@Deprecated
	public static void stampaCalciatori(NodeList calciatori){
		if(calciatori!=null){
			for (int i = 0; i < calciatori.getLength(); i++) {
				Node nodo = calciatori.item(i);
				if (nodo.getNodeType() == Node.ELEMENT_NODE) {
					Element persona = (Element) nodo;
					String nome = persona.getTextContent();
					System.out.println("Nome: " + nome.trim());
				}
			}
		}else{
			System.out.println("IMPOSSIBILE STAMPARE NOMI");
		}
	}
	@Deprecated
	public static void stampaCalciatori(Node nodo){
		stampaCalciatori(estraiCalciatori(nodo));
	}
	
	/**
	 * Genera le liste dei giocatori (titolari, panchina, indisponibili, squalificati) 
	 * dall'xml 
	 * @param squadra
	 * @param document
	 */
	public static void generaSquadra(Squadra squadra, Document document){
		if(squadra!=null && document!= null){
			NodeList listaGiocatori = document.getElementsByTagName("titolari").item(0).getChildNodes();
			squadra.addAllGiocatori(listaGiocatori, squadra.getTitolari());
			
			listaGiocatori = document.getElementsByTagName("panchina").item(0).getChildNodes();
			squadra.addAllGiocatori(listaGiocatori, squadra.getPanchina());
			
			listaGiocatori = document.getElementsByTagName("indisponibili").item(0).getChildNodes();
			squadra.addAllGiocatori(listaGiocatori, squadra.getIndisponibili());
			
			listaGiocatori = document.getElementsByTagName("squalificati").item(0).getChildNodes();
			squadra.addAllGiocatori(listaGiocatori, squadra.getSqualificati());
			
		}
	}
	
}
